.. _upgrade: 업그레이드 ========== 업그레이드 시 주의 사항 ----------------------- **동작 변경** 2008 R4.1 버전과의 동작 차이에 대해서는 릴리스 노트의 :ref:`changed-behaviors844`\을 반드시 참고한다. **기존 환경 설정 파일 보관** * 이전 버전의 $CUBRID/conf 디렉터리의 환경 설정 파일(cubrid.conf, cubrid_broker.conf, cm.conf)과 $CUBRID_DATABASES 디렉터리의 DB 위치 정보 파일(databases.txt)을 보관한다. **새로 추가된 예약어 검사** * CUBRID 설치 패키지에 포함 또는 http://ftp.cubrid.org/CUBRID_Engine/8.4.4/Linux/\ 에서 배포되는 CUBRID 2008 R4.4 버전용 예약어 검출 스크립트인 check_reserved.sql을 이용하여 예약어 사용 여부를 검사할 수 있으며, 예약어로 지정된 식별자를 사용하고 있을 경우 식별자를 수정해야 한다. :doc:`sql/identifier` 절을 참고한다. **DB 마이그레이션** * CUBRID 2008 R4.0 이하 버전은 DB 볼륨이 호환되지 않으므로, cubrid unloaddb/loaddb 유틸리티를 사용하여 DB를 마이그레이션해야 한다. .. note:: 2008 R4.0 이하 버전에서 TIMESTAMP '1970-01-01 00:00:00'(GMT)는 TIMESTAMP의 최소값이지만, 2008 4.1 이상 버전에서는 zerodate로 인식되며 TIMESTAMP '1970-01-01 00:00:01'(GMT)이 TIMESTAMP의 최소값이다. * CUBRID 2008 R3.1부터는 GLO 클래스를 지원하지 않으므로 기존의 GLO 클래스를 사용하고 있는 경우에는 BLOB 또는 CLOB 타입을 사용하도록 응용과 스키마를 변경해야 한다. 변경 작업이 용이하지 않다면 마이그레이션을 보류할 것을 권장한다. **복제 또는 HA 환경 재구성** * CUBRID 2008 R4.0부터는 복제 기능을 더 이상 지원하지 않으므로, 이전의 복제 기능을 사용하는 시스템에서는 DB 마이그레이션 이후 HA 환경으로 재구성할 것을 권장한다. 또한, CUBRID 2008 R2.0 및 R2.1에서 제공된 Linux Heartbeat 기반의 HA 기능을 사용하는 시스템도 보다 안정적인 운영을 위해 DB 마이그레이션 이후 CUBRID Heartbeat 기반의 HA 환경으로 재구성해야 한다. (아래의 :ref:`ha-db-migration` 참고) * HA 환경 구성은 매뉴얼의 :doc:`/ha` 를 참고하여 재설정해야 한다. **Java 저장 함수/프로시저** * Java 저장 함수/프로시저 사용자는 loadjava 명령을 실행하여 Java 클래스를 CUBRID에 로딩해야 한다. :doc:`/sql/jsp`\ 를 참고한다. CUBRID 2008 R4.1, R4.3에서 R4.4로 업그레이드하기 ------------------------------------------------ CUBRID 2008 R4.1, R4.3 버전 사용자는 R4.4 버전을 기존 디렉터리에 재설치한 후 기존의 환경 설정 파일에서 파라미터들의 값을 변경해야 한다. .. _migration-from-41: DB 마이그레이션 ^^^^^^^^^^^^^^^ CUBRID 2008 R4.1, R4.3과 DB 볼륨이 호환되므로, DB 마이그레이션 없이 그대로 사용하면 된다. 파라미터 설정 ^^^^^^^^^^^^^ **cubrid.conf** * sort_buffer_size의 최대 크기를 2G로 제한했으므로 이 값보다 크게 설정하지 않아야 한다. * 다음 파라미터 중 기존 파라미터들은 더 이상 사용하지 않을 예정(deprecated)이며, 앞으로 신규 파라미터의 사용을 권장한다. 괄호 안의 값은 단위 생략 시 기본 적용되는 단위이며, 신규 파라미터들은 단위 지정이 가능하다. 자세한 내용은 :doc:`/admin/config`\ 의 각 파라미터 설명을 참고한다. +-----------------------------------------+-----------------------------------------+ | 기존 파라미터(단위) | 신규 파라미터(단위) | +=========================================+=========================================+ | lock_timeout_in_secs(sec) | lock_timeout(msec) | +-----------------------------------------+-----------------------------------------+ | checkpoint_every_npages(page_count) | checkpoint_every_size(byte) | +-----------------------------------------+-----------------------------------------+ | checkpoint_interval_in_mins(min) | checkpoint_interval(msec) | +-----------------------------------------+-----------------------------------------+ | max_flush_pages_per_second(page_count) | max_flush_size_per_second(byte) | +-----------------------------------------+-----------------------------------------+ | sync_on_nflush(page_count) | sync_on_flush_size(byte) | +-----------------------------------------+-----------------------------------------+ | sql_trace_slow_msecs(msec) | sql_trace_slow(msecs) | +-----------------------------------------+-----------------------------------------+ **cubrid_broker.conf** * KEEP_CONNECTION에서 OFF 설정이 제거되었으므로 이전 버전에서 OFF로 설정한 경우 ON 또는 AUTO로 변경해야 한다. * SELECT_AUTO_COMMIT이 제거되었으므로 이전 버전에서 이 파라미터의 설정을 제거해야 한다. * APPL_SERVER_MAX_SIZE_HARD_LIMIT의 최대값을 2,097,151으로 제한했으므로 이 값보다 크게 설정하지 않아야 한다. **cubrid_ha.conf** * ha_apply_max_mem_size 파라미터의 값을 500보다 크게 설정한 사용자는 이 값을 500 이하로 설정해야 한다. .. _up-from-40: CUBRID 2008 R4.0 이하 버전에서 R4.4로 업그레이드하기 ---------------------------------------------------- CUBRID 2008 R4.0 이하 버전 사용자는 R4.4 버전을 별도의 디렉터리에 설치한 후 기존의 환경 설정 파일에서 파라미터들의 값을 변경해야 한다. .. _migration-from-40: DB 마이그레이션 ^^^^^^^^^^^^^^^ 아래는 cubrid unloaddb/loaddb 유틸리티와 http://ftp.cubrid.org/CUBRID_Engine/8.4.4/Linux/\ 에서 별도 배포되는 check_reserved.sql 예약어 검출 스크립트를 이용하여 마이그레이션을 수행하는 방법이다. (cubrid unloaddb/loaddb는 매뉴얼의 :ref:`unload-load` 참고) +------------------------------------+---------------------------------------------+---------------------------------------------+ | 단계 | Linux 환경 | Windows 환경 | +====================================+=============================================+=============================================+ | C1 단계: CUBRID Service 종료 | % cubrid service stop | CUBRID Service Tray를 종료한다. | +------------------------------------+---------------------------------------------+---------------------------------------------+ | C2 단계: 예약어 검출 스크립트 실행 | 예약어 검출 스크립트가 위치하는 디렉터리에서 아래 명령을 실행한다. | | | | | | 검출 결과를 확인하여 마이그레이션 진행 또는 식별자 수정 작업을 진행한다. | | | | | | % csql -S -u dba -i check_reserved.sql testdb | +------------------------------------+-------------------------------------------------------------------------------------------+ | C3 단계: 이전 버전 DB 언로드 | 이전 버전의 databases.txt 및 conf 디렉터리 내 설정 파일을 별도 디렉터리에 보관한다. (C3a) | | | | | | cubrid unloaddb 유틸리티를 실행하고 이때 생성된 파일을 별도 디렉터리에 보관한다. (C3b) | | | | | | % cubrid unloaddb -S testdb | | | | | | 기존 DB를 삭제한다. (C3c) | | | | | | % cubrid deletedb testdb | +------------------------------------+-------------------------------------------------------------------------------------------+ | C4 단계: 새 버전 설치 | 설치 방법은 :ref:`install-execute` 절을 참고한다. | +------------------------------------+-------------------------------------------------------------------------------------------+ | C5 단계: DB 생성 및 데이터 로딩 | DB를 생성할 디렉터리로 이동한 후, DB를 생성한다. (C5a) | | | | | | % cd $CUBRID/databases/testdb | | | | | | % cubrid createdb testdb | | | | | | (C3b)에서 보관한 파일을 가지고 cubrid loaddb 유틸리티를 실행한다. (C5b) | | | | | | % cubrid loaddb -s testdb_schema -d testdb_objects -i testdb_indexes testdb | +------------------------------------+-------------------------------------------------------------------------------------------+ | C6 단계: 새 버전 DB 백업 | % cubrid backupdb -S testdb | +------------------------------------+---------------------------------------------+---------------------------------------------+ | C7 단계: CUBRID 환경 설정 및 | 환경 설정 파일을 수정한다. 이때, (C3a)에서 | CUBRID Service Tray> [Service Start]를 | | | 보관한 이전 버전의 환경 설정 파일을 | 선택하여 서비스를 시작한다. | | CUBRID Service 구동 | 새 버전에 맞게 수정한다. | 명령 프롬프트 창에서 DB 서버를 구동한다. | | | | | | | (시스템 파라미터 설정은 :ref:`conf-from-40` | % cubrid server start testdb | | | 및 :doc:`admin/config` 참고) | | | | | | | | % cubrid service start | | | | | | | | % cubrid server start testdb | | +------------------------------------+---------------------------------------------+---------------------------------------------+ .. _conf-from-40: 파라미터 설정 ^^^^^^^^^^^^^ **cubrid.conf** * sort_buffer_size의 최대 크기를 2G로 제한했으므로 이 값보다 크게 설정하지 않아야 한다. * thread_stacksize의 기본값이 100K에서 1M으로 변경되었으므로, 이 값을 설정하지 않은 사용자는 CUBRID 관련 프로세스들의 메모리 사용량을 살펴볼 것을 권장한다. * data_buffer_size의 최소값이 64K에서 16M으로 변경되었으므로, 이 값을 16M 미만으로 설정한 사용자는 16M 이상으로 설정해야 한다. * 다음 파라미터 중 기존 파라미터들은 더 이상 사용하지 않을 예정(deprecated)이며, 앞으로 신규 파라미터의 사용을 권장한다. 괄호 안의 값은 단위 생략 시 기본 적용되는 단위이며, 신규 파라미터들은 단위 지정이 가능하다. 자세한 내용은 :doc:`/admin/config`\ 의 각 파라미터 설명을 참고한다. +-----------------------------------------+-----------------------------------------+ | 기존 파라미터(단위) | 신규 파라미터(단위) | +=========================================+=========================================+ | lock_timeout_in_secs(sec) | lock_timeout(msec) | +-----------------------------------------+-----------------------------------------+ | checkpoint_every_npages(page_count) | checkpoint_every_size(byte) | +-----------------------------------------+-----------------------------------------+ | checkpoint_interval_in_mins(min) | checkpoint_interval(msec) | +-----------------------------------------+-----------------------------------------+ | max_flush_pages_per_second(page_count) | max_flush_size_per_second(byte) | +-----------------------------------------+-----------------------------------------+ | sync_on_nflush(page_count) | sync_on_flush_size(byte) | +-----------------------------------------+-----------------------------------------+ **cubrid_broker.conf** * KEEP_CONNECTION에서 OFF 설정값이 제거되었으므로 이전 버전에서 OFF로 설정한 경우 ON 또는 AUTO로 변경해야 한다. * SELECT_AUTO_COMMIT이 제거되었으므로 이전 버전에서 이 파라미터의 설정을 제거해야 한다. * APPL_SERVER_MAX_SIZE_HARD_LIMIT의 최대값을 2,097,151으로 제한했으므로 이 값보다 크게 설정하지 않아야 한다. * APPL_SERVER_MAX_SIZE_HARD_LIMIT의 최소값이 1024M이다. APPL_SERVER_MAX_SIZE의 값을 설정하는 사용자는 APPL_SERVER_MAX_SIZE_HARD_LIMIT의 값보다 작게 설정할 것을 권장한다. * CCI_DEFAULT_AUTOCOMMIT의 기본값이 ON으로 변경되었으므로, 이를 설정하지 않은 응용 프로그램 사용자가 기존과 같은 자동 커밋 모드를 유지하고 싶다면 OFF로 설정해야 한다. **cubrid_ha.conf** * ha_apply_max_mem_size 파라미터의 값을 500 이상으로 설정한 사용자는 이 값을 500 이하로 설정해야 한다. .. _ha-db-migration: HA 환경에서 DB 마이그레이션 =========================== CUBRID 2008 R2.2 이상 버전에서 R4.4로 HA 마이그레이션 ----------------------------------------------------- 아래는 브로커, 마스터 DB, 슬레이브 DB를 각각 별도 서버에 구축한 환경에서 현재 서비스를 중지하고 업그레이드를 수행하기 위한 절차이다. +------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | 단계 | 설명 | +======================================================+==================================================================================================+ | H1~H6 단계: 마스터 노드에서 C1~C6 단계를 수행 | 마스터 노드에서 CUBRID 업그레이드 및 DB 마이그레이션을 수행하고, 새 버전의 DB를 백업한다. | +------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | H7 단계: 슬레이브 서버에 CUBRID 새 버전 설치 | 슬레이브 서버에서 이전 버전의 DB는 삭제하고, 새 버전을 설치한다. | | | | | | 설치 방법은 :ref:`install-execute` 절을 참고한다. | +------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | H8 단계: 마스터 노드 백업본을 슬레이브 서버에서 복구 | H6 단계에서 생성된 마스터 노드의 새 버전 DB 백업본(예: testdb_bk*)을 슬레이브 서버에서 복구한다. | | | | | | % scp user1\ @master:$CUBRID/databases/databases.txt $CUBRID/databases/. | | | | | | % cd ~/DB/testdb | | | | | | % scp user1\ @master:~/DB/testdb/testdb_bk0v000 . | | | | | | % scp user1\ @master:~/DB/testdb/testdb_bkvinf . | | | | | | % cubrid restoredb testdb | +------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | H9 단계: HA 환경 재구성 후 HA모드 구동 | 마스터 및 슬레이브 서버에서 CUBRID 환경 설정 파일(cubrid.conf) 및 | | | | | | HA 환경 설정 파일(cubrid_ha.conf)을 설정한다. (:ref:`quick-server-config` 참고) | +------------------------------------------------------+--------------------------------------------------------------------------------------------------+ | H10 단계: 브로커 서버에 새 버전 설치 및 브로커 구동 | 설치 방법은 :ref:`install-execute` 절을 참고한다. | | | | | | 브로커 서버에 있는 브로커를 시작한다. (:ref:`quick-broker-config` 참고) | | | | | | % cubrid broker start | +------------------------------------------------------+--------------------------------------------------------------------------------------------------+ CUBRID 2008 R2.0 또는 R2.1에서 R4.4로 HA 마이그레이션 ----------------------------------------------------- CUBRID 2008 R2.0 또는 R2.1의 HA 기능을 사용하는 경우, 서버 버전 업그레이드, DB 마이그레이션을 수행하고 HA 환경을 새롭게 구축한 후 해당 버전에서 사용되었던 Linux Heartbeat 자동 시작 설정을 변경해야 한다. (Linux Heartbeat 패키지가 불필요한 경우 삭제한다.) 위의 H1~H10 단계를 수행한 후, 아래의 H11 단계를 수행한다. +-----------------------------------------------------+-------------------------------------------------------------------+ | 단계 | 설명 | +=====================================================+===================================================================+ | H11 단계: 기존 Linux heartbeat 자동 시작 설정 변경 | 이하의 작업은 마스터 및 슬레이브 서버에서 root 계정으로 수행한다. | | | | | | [root\ @master ~]# chkconfig --del heartbeat | | | // 슬레이브 서버에서 동일 작업 수행 | +-----------------------------------------------------+-------------------------------------------------------------------+